package com.cm.caseManagement.pojo.entity;
import com.cm.caseManagement.annotation.Excel;
import com.cm.caseManagement.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 统计看板快照对象 cm_dashboard_stats_snaps
 *
 * @author ruoyi
 * @date 2025-10-05
 */
public class CmDashboardStatsSnaps extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 外部唯一id */
    @Excel(name = "外部唯一id")
    private String publicId;

    /** 案件批次id */
    @Excel(name = "案件批次id")
    private Long caseBatchId;

    /** 委托案件总标的金额 */
    @Excel(name = "委托案件总标的金额")
    private BigDecimal totalEntrustedAmount;

    /** 委托律师费总金额 */
    @Excel(name = "委托律师费总金额")
    private BigDecimal totalEntrustedFee;

    /** 委托案件基础律师费总额 */
    @Excel(name = "委托案件基础律师费总额")
    private BigDecimal baseFeeTotal;

    /** 基础律师费-到账金额 */
    @Excel(name = "基础律师费-到账金额")
    private BigDecimal baseFeeReceived;

    /** 基础律师费-未到账金额 */
    @Excel(name = "基础律师费-未到账金额")
    private BigDecimal baseFeeUnreceived;

    /** 委托案件风险律师费总额 */
    @Excel(name = "委托案件风险律师费总额")
    private BigDecimal contingencyFeeTotal;

    /** 风险律师费-到账金额 */
    @Excel(name = "风险律师费-到账金额")
    private BigDecimal contingencyFeeReceived;

    /** 风险律师费-未到账金额 */
    @Excel(name = "风险律师费-未到账金额")
    private BigDecimal contingencyFeeUnreceived;

    /** 风险律师费-未到账金额中可结算 */
    @Excel(name = "风险律师费-未到账金额中可结算")
    private BigDecimal contingencyFeeSettleable;

    /** 委托案件已交保证金总额 */
    @Excel(name = "委托案件已交保证金总额")
    private BigDecimal totalDeposit;

    /** 已退保证金 */
    @Excel(name = "已退保证金")
    private BigDecimal depositRefunded;

    /** 未退保证金 */
    @Excel(name = "未退保证金")
    private BigDecimal depositUnrefunded;

    /** 可退保证金 */
    @Excel(name = "可退保证金")
    private BigDecimal depositRefundable;

    /** 可结算已报保证金 */
    @Excel(name = "可结算已报保证金")
    private BigDecimal depositReportedSettleable;

    /** 可结算未报保证金 */
    @Excel(name = "可结算未报保证金")
    private BigDecimal depositUnreportedSettleable;

    /** 已办结已结算案件 */
    @Excel(name = "已办结已结算案件")
    private Long closedSettledCaseCount;

    /** 承办案件总量 */
    @Excel(name = "承办案件总量")
    private Long totalUndertakenCases;

    /** 在办案件存量 */
    @Excel(name = "在办案件存量")
    private Long activeCaseCount;

    /** 正常进度案件 */
    @Excel(name = "正常进度案件")
    private Long normalProgressCount;

    /** 临期案件提醒 */
    @Excel(name = "临期案件提醒")
    private Long approachingDeadlineCount;

    /** 进度超期案件 */
    @Excel(name = "进度超期案件")
    private Long overdueProgressCount;

    /** 在办案件可结算 */
    @Excel(name = "在办案件可结算")
    private Long activeSettleableCount;

    /** 在办案件不可结算 */
    @Excel(name = "在办案件不可结算")
    private Long activeUnsettleableCount;

    /** 快照时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "快照时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date snapshotTime;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setPublicId(String publicId)
    {
        this.publicId = publicId;
    }

    public String getPublicId()
    {
        return publicId;
    }

    public void setCaseBatchId(Long caseBatchId)
    {
        this.caseBatchId = caseBatchId;
    }

    public Long getCaseBatchId()
    {
        return caseBatchId;
    }

    public void setTotalEntrustedAmount(BigDecimal totalEntrustedAmount)
    {
        this.totalEntrustedAmount = totalEntrustedAmount;
    }

    public BigDecimal getTotalEntrustedAmount()
    {
        return totalEntrustedAmount;
    }

    public void setTotalEntrustedFee(BigDecimal totalEntrustedFee)
    {
        this.totalEntrustedFee = totalEntrustedFee;
    }

    public BigDecimal getTotalEntrustedFee()
    {
        return totalEntrustedFee;
    }

    public void setBaseFeeTotal(BigDecimal baseFeeTotal)
    {
        this.baseFeeTotal = baseFeeTotal;
    }

    public BigDecimal getBaseFeeTotal()
    {
        return baseFeeTotal;
    }

    public void setBaseFeeReceived(BigDecimal baseFeeReceived)
    {
        this.baseFeeReceived = baseFeeReceived;
    }

    public BigDecimal getBaseFeeReceived()
    {
        return baseFeeReceived;
    }

    public void setBaseFeeUnreceived(BigDecimal baseFeeUnreceived)
    {
        this.baseFeeUnreceived = baseFeeUnreceived;
    }

    public BigDecimal getBaseFeeUnreceived()
    {
        return baseFeeUnreceived;
    }

    public void setContingencyFeeTotal(BigDecimal contingencyFeeTotal)
    {
        this.contingencyFeeTotal = contingencyFeeTotal;
    }

    public BigDecimal getContingencyFeeTotal()
    {
        return contingencyFeeTotal;
    }

    public void setContingencyFeeReceived(BigDecimal contingencyFeeReceived)
    {
        this.contingencyFeeReceived = contingencyFeeReceived;
    }

    public BigDecimal getContingencyFeeReceived()
    {
        return contingencyFeeReceived;
    }

    public void setContingencyFeeUnreceived(BigDecimal contingencyFeeUnreceived)
    {
        this.contingencyFeeUnreceived = contingencyFeeUnreceived;
    }

    public BigDecimal getContingencyFeeUnreceived()
    {
        return contingencyFeeUnreceived;
    }

    public void setContingencyFeeSettleable(BigDecimal contingencyFeeSettleable)
    {
        this.contingencyFeeSettleable = contingencyFeeSettleable;
    }

    public BigDecimal getContingencyFeeSettleable()
    {
        return contingencyFeeSettleable;
    }

    public void setTotalDeposit(BigDecimal totalDeposit)
    {
        this.totalDeposit = totalDeposit;
    }

    public BigDecimal getTotalDeposit()
    {
        return totalDeposit;
    }

    public void setDepositRefunded(BigDecimal depositRefunded)
    {
        this.depositRefunded = depositRefunded;
    }

    public BigDecimal getDepositRefunded()
    {
        return depositRefunded;
    }

    public void setDepositUnrefunded(BigDecimal depositUnrefunded)
    {
        this.depositUnrefunded = depositUnrefunded;
    }

    public BigDecimal getDepositUnrefunded()
    {
        return depositUnrefunded;
    }

    public void setDepositRefundable(BigDecimal depositRefundable)
    {
        this.depositRefundable = depositRefundable;
    }

    public BigDecimal getDepositRefundable()
    {
        return depositRefundable;
    }

    public void setDepositReportedSettleable(BigDecimal depositReportedSettleable)
    {
        this.depositReportedSettleable = depositReportedSettleable;
    }

    public BigDecimal getDepositReportedSettleable()
    {
        return depositReportedSettleable;
    }

    public void setDepositUnreportedSettleable(BigDecimal depositUnreportedSettleable)
    {
        this.depositUnreportedSettleable = depositUnreportedSettleable;
    }

    public BigDecimal getDepositUnreportedSettleable()
    {
        return depositUnreportedSettleable;
    }

    public void setClosedSettledCaseCount(Long closedSettledCaseCount)
    {
        this.closedSettledCaseCount = closedSettledCaseCount;
    }

    public Long getClosedSettledCaseCount()
    {
        return closedSettledCaseCount;
    }

    public void setTotalUndertakenCases(Long totalUndertakenCases)
    {
        this.totalUndertakenCases = totalUndertakenCases;
    }

    public Long getTotalUndertakenCases()
    {
        return totalUndertakenCases;
    }

    public void setActiveCaseCount(Long activeCaseCount)
    {
        this.activeCaseCount = activeCaseCount;
    }

    public Long getActiveCaseCount()
    {
        return activeCaseCount;
    }

    public void setNormalProgressCount(Long normalProgressCount)
    {
        this.normalProgressCount = normalProgressCount;
    }

    public Long getNormalProgressCount()
    {
        return normalProgressCount;
    }

    public void setApproachingDeadlineCount(Long approachingDeadlineCount)
    {
        this.approachingDeadlineCount = approachingDeadlineCount;
    }

    public Long getApproachingDeadlineCount()
    {
        return approachingDeadlineCount;
    }

    public void setOverdueProgressCount(Long overdueProgressCount)
    {
        this.overdueProgressCount = overdueProgressCount;
    }

    public Long getOverdueProgressCount()
    {
        return overdueProgressCount;
    }

    public void setActiveSettleableCount(Long activeSettleableCount)
    {
        this.activeSettleableCount = activeSettleableCount;
    }

    public Long getActiveSettleableCount()
    {
        return activeSettleableCount;
    }

    public void setActiveUnsettleableCount(Long activeUnsettleableCount)
    {
        this.activeUnsettleableCount = activeUnsettleableCount;
    }

    public Long getActiveUnsettleableCount()
    {
        return activeUnsettleableCount;
    }

    public void setSnapshotTime(Date snapshotTime)
    {
        this.snapshotTime = snapshotTime;
    }

    public Date getSnapshotTime()
    {
        return snapshotTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("publicId", getPublicId())
            .append("caseBatchId", getCaseBatchId())
            .append("totalEntrustedAmount", getTotalEntrustedAmount())
            .append("totalEntrustedFee", getTotalEntrustedFee())
            .append("baseFeeTotal", getBaseFeeTotal())
            .append("baseFeeReceived", getBaseFeeReceived())
            .append("baseFeeUnreceived", getBaseFeeUnreceived())
            .append("contingencyFeeTotal", getContingencyFeeTotal())
            .append("contingencyFeeReceived", getContingencyFeeReceived())
            .append("contingencyFeeUnreceived", getContingencyFeeUnreceived())
            .append("contingencyFeeSettleable", getContingencyFeeSettleable())
            .append("totalDeposit", getTotalDeposit())
            .append("depositRefunded", getDepositRefunded())
            .append("depositUnrefunded", getDepositUnrefunded())
            .append("depositRefundable", getDepositRefundable())
            .append("depositReportedSettleable", getDepositReportedSettleable())
            .append("depositUnreportedSettleable", getDepositUnreportedSettleable())
            .append("closedSettledCaseCount", getClosedSettledCaseCount())
            .append("totalUndertakenCases", getTotalUndertakenCases())
            .append("activeCaseCount", getActiveCaseCount())
            .append("normalProgressCount", getNormalProgressCount())
            .append("approachingDeadlineCount", getApproachingDeadlineCount())
            .append("overdueProgressCount", getOverdueProgressCount())
            .append("activeSettleableCount", getActiveSettleableCount())
            .append("activeUnsettleableCount", getActiveUnsettleableCount())
            .append("snapshotTime", getSnapshotTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
